package com.mkx.multitier;

/**
 * 监控接口，用于监控多级分层线程模型中各层次的运行状态和任务处理情况
 */
public interface Monitor {
    /**
     * 层次初始化完成通知
     */
    void onLayerInitialized(String layerName);
    
    /**
     * 层次启动通知
     */
    void onLayerStarted(String layerName);
    
    /**
     * 层次关闭通知
     */
    void onLayerShutdown(String layerName);
    
    /**
     * 任务处理成功通知
     */
    void onTaskProcessed(String layerName, Task task, long processTimeMs);
    
    /**
     * 任务处理失败通知
     */
    void onTaskFailed(String layerName, Task task, Exception e, long processTimeMs);
    
    /**
     * 资源使用情况统计
     */
    void reportResourceUsage(String layerName, ResourceUsage resourceUsage);
    
    /**
     * 资源分配通知
     */
    void onResourceAllocated(String layerName, String resourceType, Object resource);
    
    /**
     * 资源释放通知
     */
    void onResourceReleased(String layerName, String resourceType, Object resource);
}
